package com.mhc.suzuki.service;

import com.mhc.haval.security.model.User;
import com.mhc.suzuki.bo.*;
import com.mhc.suzuki.exception.SuzukiCommonException;
import com.mhc.suzuki.vo.DataDictVO;

import java.util.List;


/**
 * Created by HW
 * on 2017/8/16 16:00.
 */
public interface OrderGeneralInfoService {


    /**
     * 根据订单号获取综合信息录入页面所有信息
     * @param orderNo
     * @return
     * @throws SuzukiCommonException
     */
    GeneralOrderInfoBO getGeneralOrderInfoByOrderNo(String orderNo) throws SuzukiCommonException;


    /**
     * 出险信息录入
     * @param generalAccidentBO
     * @return
     * @throws SuzukiCommonException
     */
    Boolean inputAccidentInfo(GeneralAccidentBO generalAccidentBO) throws SuzukiCommonException;


    /**
     * 车辆信息录入
     * @param generalCarInfoBO
     * @return
     * @throws SuzukiCommonException
     */
    Boolean inputCarInfo(GeneralCarInfoBO generalCarInfoBO) throws SuzukiCommonException ;

    /**
     * 公证抵押信息录入
     * @param generalNotaryMortgageBO
     * @return
     * @throws SuzukiCommonException
     */
    Boolean inputNotaryMortgage(GeneralNotaryMortgageBO generalNotaryMortgageBO) throws SuzukiCommonException;


    /**
     * 合同齐全信息录入
     * @param generalContractSubmitBO
     * @return
     * @throws SuzukiCommonException
     */
    Boolean inputCotractSubmit(GeneralContractSubmitBO generalContractSubmitBO) throws SuzukiCommonException;

    /**
     * 寄卡信息获取
     * @param generalPostBankCardBO
     * @return
     * @throws SuzukiCommonException
     */
    Boolean inputPostBankCard(GeneralPostBankCardBO generalPostBankCardBO) throws SuzukiCommonException;

    /**
     * 退保证金信息录入
     * @param generalRefundDepositBO
     * @return
     * @throws SuzukiCommonException
     */
    Boolean inputRefundDeposit(GeneralRefundDepositBO generalRefundDepositBO) throws SuzukiCommonException;


    /**
     * 结清信息录入
     * @param generalLoanClearBO
     * @return
     * @throws SuzukiCommonException
     */
    Boolean inputLoanClear(GeneralLoanClearBO generalLoanClearBO) throws SuzukiCommonException;

    /**
     * 保险信息录入
     * @param generalInsuranceInfoBOS
     * @return
     * @throws SuzukiCommonException
     */
    Boolean inputInsurance(List<GeneralInsuranceInfoBO> generalInsuranceInfoBOS) throws SuzukiCommonException;


    /**
     * 综合处理选择保险公司
     * @param dataDictBO
     * @param logedUser
     * @return
     * @throws SuzukiCommonException
     */
    public List<DataDictVO> getInsuranceCompanyList(DataDictBO dataDictBO, User logedUser) throws SuzukiCommonException;
}
